Various forms of network storage systems are known today. These forms include network attached storage (NAS), storage area networks (SANs), and others. Network storage systems are commonly used for a variety of purposes, such as providing multiple users with access to shared data, backing up critical data (e.g., by data mirroring), etc.
A network storage system includes at least one storage server, which is a processing system configured to store and retrieve data on behalf of one or more client processing systems (“clients”). In the context of NAS, a storage server may be a file server, which is sometimes called a “filer”. A filer operates on behalf of one or more clients to store and manage shared files in a set of mass storage devices, such as magnetic or optical disks or tapes. The mass storage devices may be organized into one or more volumes of a Redundant Array of Inexpensive Disks (RAID). Filers are made by Network Appliance, Inc. of Sunnyvale, Calif.
In a SAN context, the storage server provides clients with block-level access to stored data, rather than file-level access. Some storage servers are capable of providing clients with both file-level access and block-level access, such as certain Filers made by Network Appliance, Inc.
A business enterprise or other organization that manages large volumes of data may operate multiple storage servers concurrently. These storage servers may be connected to each other through one or more networks. The storage servers and other network components may be managed by one or more network administrators (also called “administrative users” or simply “administrators”), who are responsible for configuring, provisioning and monitoring the storage servers, scheduling backups, troubleshooting problems with the storage servers, performing software upgrades, etc. These management tasks can be accomplished by the administrator using a separate management console on the network, which is a computer system that runs storage management software application specifically designed to manage a distributed storage infrastructure. An example of such storage management software is DataFabric® Manager (DFM), made by Network Appliance, Inc. of Sunnyvale, Calif.
To prevent unauthorized users from accessing and controlling functions of the storage servers, there is a need for some form of access control. There are two forms of access control: authentication and authorization. Authentication is the process of determining whether a particular user is who he claims to be, such as by verifying a username and a password. Authorization is the process of determining whether a particular user is allowed to do or access a particular function, feature, etc. Access control can be provided, at least in part, by the use of usernames and passwords, such as by assigning a username and password to each storage server, where only an authorized administrator knows the correct username and password.
Organizations which use more than one storage server often would like to have the same administrative user manage all of the storage servers with only a single username and password. Preferably, this user (and possibly administrative users) should have easy access to all of the storage servers within his network. Furthermore, connecting a new storage server to the network should be seamless, and the administrative user should be able to access it easily.
One way of accomplishing this is by assigning the same username and password to each storage server. The user names and passwords can be uploaded to the storage servers upon an initial boot, letting administrators access the appliances with only a script change. However, this solution is unwieldy for very large organizations with many administrators. With this approach, it is cumbersome to create new administrators, change passwords, and delete old administrators.
Furthermore, it may be desirable to apply different access privileges to different administrators with respect to the storage servers. For example, one network administrator may have full access privileges to control any function of any storage server, whereas another network administrator may only be authorized to control data backup operations. As a result, at least some of the different users need to have different user names and passwords. The above-mentioned approach, therefore, becomes particularly cumbersome in such situations.
Some prior art storage management software can provide centralized control of access by one or more administrators to one or more storage servers on a network. An administrator initially gains access to a management console equipped with such software by providing a username and password. Once authenticated, the administrator has access to all of the applications included in the management console and can invoke these applications with respect to any of the managed storage servers. In addition, such software can enforce different access privileges for different authorized users; for example, one authorized user may have both read and write privileges while another authorized user has only read privileges.
It may be desirable, however, to allow certain functions of a storage server to be controlled or invoked by one or more software applications that reside on computer systems separate from the storage servers or the usual management console; such applications are referred to herein as “third party” applications. For example, the storage servers and the storage management software may be made by a particular manufacturer, such as Network Appliance, Inc.; however, from a storage system user's perspective, it may be desirable for a storage management software application of another vendor to be able to access the storage servers as a third party application. As another example, a third party application might be a data backup application that resides on a computer other than the management console or the storage servers. In such a scenario, there is also a need for a convenient and centralized mechanism for controlling access by the third party application to the storage servers.